(function ($){ $(document).ready(function (){ setTimeout(function (){ var infowindow; var map; var markers=[]; var markerCluster; var geocoder; var autoComplete; var current_lat; var current_lng; var spinner_opts={ lines: 13 , length: 28 , width: 14 , radius: 42 , scale: 1 , corners: 1 , color: '#444' , opacity: 0.25 , rotate: 0 , direction: 1 , speed: 1 , trail: 60 , fps: 20 , zIndex: 2e9 , className: 'spinner' , top: '50%' , left: '50%' , shadow: false , hwaccel: false , position: 'absolute' }; var saved_list=[]; $(".range-radius").asRange({ tip: true, step: 1, value: parseInt(iwj_search_map.default_radius), max: parseInt(iwj_search_map.max_radius), min: parseInt(iwj_search_map.min_radius), }); function initMap(){ geocoder=new google.maps.Geocoder(); autoComplete=new google.maps.places.Autocomplete(document.getElementById('location'), { types: [] }); var lat=parseFloat(iwj_search_map.lat); var lng=parseFloat(iwj_search_map.lng); var zoom=parseFloat(iwj_search_map.zoom); map=new google.maps.Map(document.getElementById('iw_search_map'), { zoom: zoom, center: {lat: lat, lng: lng}, styles: (iwj_search_map.map_styles ? JSON.parse(iwj_search_map.map_styles):[ { "featureType": "administrative", "elementType": "labels.text.fill", "stylers": [ { "color": "#444444" } ] }, { "featureType": "landscape", "elementType": "all", "stylers": [ { "color": "#f2f2f2" } ] }, { "featureType": "poi", "elementType": "all", "stylers": [ { "visibility": "off" } ] }, { "featureType": "road", "elementType": "all", "stylers": [ { "saturation": -100 }, { "lightness": 45 } ] }, { "featureType": "road.highway", "elementType": "all", "stylers": [ { "visibility": "simplified" } ] }, { "featureType": "road.arterial", "elementType": "labels.icon", "stylers": [ { "visibility": "off" } ] }, { "featureType": "transit", "elementType": "all", "stylers": [ { "visibility": "off" } ] }, { "featureType": "water", "elementType": "all", "stylers": [ { "color": "#46bcec" }, { "visibility": "on" } ] } ]) }); infowindow=new InfoBubble({ content: ' ', shadowStyle: 1, maxWidth: 280, minWidth: 260, minHeight: 'auto', maxHeight: 900, padding: 30, backgroundColor: '#fff', borderRadius: 5, arrowSize: 25, borderWidth: 1, borderColor: 'transparent', disableAutoPan: false, hideCloseButton: false, arrowPosition: 50, backgroundClassName: 'infor-search-map', arrowStyle: 0, closeSrc: iwj_search_map.close_icon }); google.maps.event.addListener(autoComplete, 'place_changed', function (){ var place=autoComplete.getPlace(); if(place.geometry){ latLng=place.geometry.location; $('#iwj_curent_lat').val(latLng.lat()); $('#iwj_curent_lng').val(latLng.lng()); map.panTo(place.geometry.location); map.setZoom(12); }}); var result=$('.data-array').data('array'); ajaxSuccess(result, map); } $('.btn-search').click(function (){ ajaxfilter(); }); $('form.search-map').submit(function (e){ e.preventDefault(); ajaxfilter(); }); $('.hide-advance').click(function (){ that=$(this); $('form.search-map').toggle(400); that.toggleClass('active'); if(that.hasClass('active')){ that.html(iwj_search_map.show_advance_text); }else{ that.html(iwj_search_map.hide_advance_text) }}); $('.section-result').on('mouseenter', '.grid-content', function (){ var that=$(this); var id=that.data('id'); for (var i=0; i < markers.length; i++){ if(id===markers[i].ID){ markers[i].setIcon(iwj_search_map.marker_icon_hover); break; }} }); $('.section-result').on('mouseleave', '.grid-content', function (){ var that=$(this); var id=that.data('id'); for (var i=0; i < markers.length; i++){ if(id===markers[i].ID){ markers[i].setIcon(iwj_search_map.marker_icon); break; }} }); $('.iwj-search-left-side').on('click', '.iwjob-ajax-map-pagination li a', function (e){ e.preventDefault(); $('.iwjob-ajax-map-pagination li').removeClass('active'); $(this).closest('li').addClass('active'); var paged=$(this).closest('li').data('paged'); var pag=$(this).closest('.w-pagination'); pag.find('input[name="page_number"]').val(paged); ajaxfilter(paged); }); $('.btn-pinpoint').on('click', function (){ if(navigator.geolocation){ navigator.geolocation.getCurrentPosition(function (position){ var pos={ lat: position.coords.latitude, lng: position.coords.longitude }; $('#iwj_curent_lat').val(position.coords.latitude); $('#iwj_curent_lng').val(position.coords.longitude); geocoder.geocode({'location': pos}, function (results, status){ if(status==='OK'){ if(results[0]){ $('input#location').val(results[0].formatted_address); }} }); map.setCenter(pos); map.setZoom(13); }, function (){ handleLocationError(true, infoWindow, map.getCenter()); }); }else{ handleLocationError(false, infoWindow, map.getCenter()); }}); function ajaxfilter(paged){ if(!paged){ paged=1; } var spinner; var data=$('form.search-map').serialize(); var target=$('#section-filter'); current_lat=(target.find('input[name="current_lat"]').val()) ? target.find('input[name="current_lat"]').val():'' current_lng=(target.find('input[name="current_lng"]').val()) ? target.find('input[name="current_lng"]').val():''; var radius=$('.range-radius').asRange('get'); data='action=get_locations_data&_ajax_nonce=' + iwj.security + '&' + data + '¤t_lat=' + current_lat + '¤t_lng=' + current_lng + '&radius=' + radius + '&paged=' + paged; var s=document.getElementById('iw_search_map'); $.ajax({ type: 'POST', dataType: 'json', url: iwj.ajax_url, data: data, beforeSend: function (){ var spinner=new Spinner(spinner_opts).spin(s); }, success: function (resp){ $(".spinner").delay(1000).queue(function (){ $(this).remove(); }); ajaxSuccess(resp, map); }}); } function ajaxSuccess(data, map){ if(data.status==1&&typeof data.status!=='undefined'){ $('.section-result .iwajax-load').html(data.html); var result=data.data; if(typeof markerCluster!=='undefined'){ markerCluster.clearMarkers(); for (var i=0; i < markers.length; i++){ markers[i].setMap(null); markerCluster.removeMarker(markers[i]); } markers=[]; } for (var i=0; i < result.length; i++){ marker=new google.maps.Marker({ position: result[i].location, icon: iwj_search_map.marker_icon }); marker.ID=result[i].ID; open_info(marker, result[i]); marker.setMap(map); markers.push(marker); } if($('.iwj-grid').length){ $('.iwj-grid .job-item').matchHeight({ byRow: true, property: 'height', target: null, remove: false }); $('.iwj-grid .job-item').data('setmatchHeight', true); } markerCluster=new MarkerClusterer(map, markers, {imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'}); AutoCenter(); }else{ $('.section-result .iwj-jobs').html(data.html); for (var i=0; i < markers.length; i++){ markers[i].setMap(null); markerCluster.removeMarker(markers[i]); } markers=[]; $('.section-result .w-pagination').hide(); }} function open_info(marker, result){ google.maps.event.addListener(marker, 'click', (function (marker){ return function (){ var contentdata=''; var content=''; var is_saved=''; if(jQuery.inArray(result.ID, saved_list)!='-1'){ is_saved='saved'; } content +='
'; content +='
' + result.title + '
'; if(result.company_name!=''){ content +='
' + result.company_name + '
'; } if(result.salary!=''){ content +='
' + result.salary + '
'; } if(result.address!=''){ content +='
' + result.address + '
'; } content +='
'; if(result.link_type!=''&&result.color!=''){ content +='' + result.type_name + ''; } if(result.user_login=='1'){ content +='
'; }else{ content +=''; } content +='
'; content +=''; contentdata=$(content); contentdata.on('click', '.iwj-save-job', function (e){ e.preventDefault(); var self=$(this); var id=$(this).data('id'); var in_list=$(this).data('in-list'); var ori_class=''; if(self.hasClass('saved')){ var data='action=iwj_undo_save_job&_ajax_nonce=' + iwj.security + '&id=' + id; }else{ var data='action=iwj_save_job&_ajax_nonce=' + iwj.security + '&id=' + id; } $.ajax({ url: iwj.ajax_url, type: 'POST', data: data, dataType: 'json', beforeSend: function (){ if(in_list){ ori_class=self.find('i').attr('class'); self.find('i').attr('class', 'fa fa-spinner fa-spin'); }else{ iwj_button_loader(self, 'add'); }}, success: function (result){ if(result){ iwj_button_loader(self, 'remove'); if(result.success==true){ var index=saved_list.indexOf(id); if(self.hasClass('saved')){ self.removeClass('saved'); if(index > -1){ saved_list.splice(index, 1); }}else{ self.addClass('saved'); if(index < 1){ saved_list.push(id); }} if(!in_list){ self.html(result.message); }} if(in_list){ self.find('i').attr('class', ori_class); }} }}); }); contentdata.on('mouseenter', 'a[data-color]', function (){ var color=$(this).data('color'); if(color){ var ori_background=$(this).css('background-color'); $(this).data('ori-background-color', ori_background); $(this).css({'background-color': color}); }}); contentdata.on('mouseout', 'a[data-color]', function (){ var color=$(this).data('ori-background-color'); $(this).css({'background-color': color}); }); infowindow.setContent(contentdata.get(0)); infowindow.open(map, marker); }})(marker)); } function AutoCenter(){ var bounds=new google.maps.LatLngBounds(); $.each(markers, function (index, marker){ bounds.extend(marker.position); }); if(bounds.getNorthEast().equals(bounds.getSouthWest())){ var extendPoint1=new google.maps.LatLng(bounds.getNorthEast().lat() + 0.01, bounds.getNorthEast().lng() + 0.01); var extendPoint2=new google.maps.LatLng(bounds.getNorthEast().lat() - 0.01, bounds.getNorthEast().lng() - 0.01); bounds.extend(extendPoint1); bounds.extend(extendPoint2); } map.fitBounds(bounds); } initMap(); }, 1000); }); })(jQuery); jQuery(document).ready(function ($){ $(window).on("resize", function (){ if($('#wpadminbar').length){ var h_wpadminbar=$('#wpadminbar').outerHeight() } var h_header=$('.header.header-default').outerHeight(), h_window=window.innerHeight, h_wpadminbar_n=0; if(h_wpadminbar){ h_wpadminbar_n=h_wpadminbar; } var h_map=(h_window - h_wpadminbar_n - h_header); $('.contents-main-search-map').css({'padding-top': h_header}); $('.page-search-map .iw_search_map').css({'height': h_map}); }).trigger('resize'); });